#include "qs75.h"

const is31_led g_is31_leds[DRIVER_LED_TOTAL] = {
 /* Refer to IS31 manual for these locations
 *   driver
 *   |  R location
 *   |  |      G location
 *   |  |      |      B location
 *   |  |      |      | */
    {0, B_1,   A_1,   C_1},
    {0, B_2,   A_2,   C_2},
    {0, B_3,   A_3,   C_3},
    {0, B_4,   A_4,   C_4},
    {0, B_5,   A_5,   C_5},

    {0, E_1,   D_1,   F_1},
    {0, E_2,   D_2,   F_2},
    {0, E_3,   D_3,   F_3},
    {0, E_4,   D_4,   F_4},
    {0, E_5,   D_5,   F_5},

    {0, H_1,   G_1,   I_1},
    {0, H_2,   G_2,   I_2},
    {0, H_3,   G_3,   I_3},
    {0, H_4,   G_4,   I_4},
    {0, H_5,   G_5,   I_5},

    {0, K_1,   J_1,   L_1},
    {0, K_2,   J_2,   L_2},
    {0, K_3,   J_3,   L_3},
    {0, K_4,   J_4,   L_4},
    {0, K_5,   J_5,   L_5},

    {0, B_6,   A_6,   C_6},
    {0, B_7,   A_7,   C_7},
    {0, B_8,   A_8,   C_8},
    {0, B_9,   A_9,   C_9},
    {0, B_10,  A_10,  C_10},

    {0, E_6,   D_6,   F_6},
    {0, E_7,   D_7,   F_7},
    {0, E_8,   D_8,   F_8},
    {0, E_9,   D_9,   F_9},
    {0, E_10,  D_10,  F_10},

    {0, H_6,   G_6,   I_6},
    {0, H_7,   G_7,   I_7},
    {0, H_8,   G_8,   I_8},
    {0, H_9,   G_9,   I_9},
    {0, H_10,  G_10,  I_10},

    {0, K_6,   J_6,   L_6},
    {0, K_7,   J_7,   L_7},
    {0, K_8,   J_8,   L_8},
    {0, K_9,   J_9,   L_9},
    {0, K_10,  J_10,  L_10},

    {1, B_1,   A_1,   C_1},
    {1, B_2,   A_2,   C_2},
    {1, B_3,   A_3,   C_3},
    {1, B_4,   A_4,   C_4},
    {1, B_5,   A_5,   C_5},

    {1, E_1,   D_1,   F_1},
    {1, E_2,   D_2,   F_2},
    {1, E_3,   D_3,   F_3},
    {1, E_4,   D_4,   F_4},
    {1, E_5,   D_5,   F_5},

    {1, H_1,   G_1,   I_1},
    {1, H_2,   G_2,   I_2},
    {1, H_3,   G_3,   I_3},
    {1, H_4,   G_4,   I_4},
    {1, H_5,   G_5,   I_5},

    {1, K_1,   J_1,   L_1},
    {1, K_2,   J_2,   L_2},
    {1, K_3,   J_3,   L_3},
    {1, K_4,   J_4,   L_4},
    {1, K_5,   J_5,   L_5},

    {1, B_6,   A_6,   C_6},
    {1, B_7,   A_7,   C_7},
    {1, B_8,   A_8,   C_8},
    {1, B_9,   A_9,   C_9},
    {1, B_10,  A_10,  C_10},

    {1, E_6,   D_6,   F_6},
    {1, E_7,   D_7,   F_7},
    {1, E_8,   D_8,   F_8},
    {1, E_9,   D_9,   F_9},
    {1, E_10,  D_10,  F_10},

    {1, H_6,   G_6,   I_6},
    {1, H_7,   G_7,   I_7},
    {1, H_8,   G_8,   I_8},
    {1, H_9,   G_9,   I_9},
    {1, H_10,  G_10,  I_10},
};

led_config_t g_led_config = {{
    {   0,   1,   2,   3,   4 },
    {   5,   6,   7,   8,   9 },
    {  10,  11,  12,  13,  14 },
    {  15,  16,  17,  18,  19 },
    {  20,  21,  22,  23,  24 },
    {  25,  26,  27,  28,  29 },
    {  30,  31,  32,  33,  34 },
    {  35,  36,  37,  38,  39 },

    {  40,  41,  42,  43,  44 },
    {  45,  46,  47,  48,  49 },
    {  50,  51,  52,  53,  54 },
    {  55,  56,  57,  58,  59 },
    {  60,  61,  62,  63,  64 },
    {  65,  66,  67,  68,  69 },
    {  70,  71,  72,  73,  74 },
}, {
    {   0,   0 }, {   0,  16 }, {   0,  32 }, {   0,  47 }, {   0,  63 },
    {  16,   0 }, {  16,  16 }, {  16,  32 }, {  16,  47 }, {  16,  63 },
    {  32,   0 }, {  32,  16 }, {  32,  32 }, {  32,  47 }, {  32,  63 },
    {  48,   0 }, {  48,  16 }, {  48,  32 }, {  48,  47 }, {  48,  63 },
    {  64,   0 }, {  64,  16 }, {  64,  32 }, {  64,  47 }, {  64,  63 },
    {  80,   0 }, {  80,  16 }, {  80,  32 }, {  80,  47 }, {  80,  63 },
    {  96,   0 }, {  96,  16 }, {  96,  32 }, {  96,  47 }, {  96,  63 },
    { 112,   0 }, { 112,  16 }, { 112,  32 }, { 112,  47 }, { 112,  63 },
    { 127,   0 }, { 127,  16 }, { 127,  32 }, { 127,  47 }, { 127,  63 },
    { 143,   0 }, { 143,  16 }, { 143,  32 }, { 143,  47 }, { 143,  63 },
    { 159,   0 }, { 159,  16 }, { 159,  32 }, { 159,  47 }, { 159,  63 },
    { 175,   0 }, { 175,  16 }, { 175,  32 }, { 175,  47 }, { 175,  63 },
    { 191,   0 }, { 191,  16 }, { 191,  32 }, { 191,  47 }, { 191,  63 },
    { 207,   0 }, { 207,  16 }, { 207,  32 }, { 207,  47 }, { 207,  63 },
    { 223,   0 }, { 223,  16 }, { 223,  32 }, { 223,  47 }, { 223,  63 }
}, {
    1, 1, 1, 1, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 4, 4, 4, 1,
    1, 1, 1, 1, 1
}};

const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = LAYOUT(
  47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
  35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
  23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
  11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
  -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13
);
